#include<vector>
#include<queue>
#include<memory>
#include<mutex>
#include<condition_variable>
#include<functional>
#include<thread>
#include<future>
#include<atomic>
#include<iostream>

// 声明一个线程池模式的枚举类；
enum class PoolMode{
    MODE_FIXED, 
    MODE_CACHED,
};

class Thread{
    using ThreadFunc = std::functional<void(int)>;
    ThreadFunc m_func;
    int m_ThreadId;
public:
    Thread(ThreadFunc func);
    ~Thread()=default;

};

class ThreadPool{
    int m_initThreadSize;
    int m_maxThreadThreshold;
    std::atomic_int m_curThreadSize;
    std::automic_int m_idleThreadSize;
    using Task = std::functional<void()> ;
    std::queue<Task> m_taskQue;
    

}
